home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Science / MAL ©P.f.Howden 1⁄1⁄89 / POLYFIT < prev    next >
Text File  |  1987-04-24  |  2KB  |  60 lines

  1. 7 CLS:CLEAR:PRINT"POLYFIT-LEAST SQUARES DATA FITTING":PRINT"TYPE ON LINE  10 DATA No.PTS,Degree":PRINT"TYPE ON LINE  100 DATA X(1),Y(1),X(2),Y(2),.......":PRINT"CONTINUE ON LINES 101-299"
  2. 10 DATA 14,4
  3. 100 DATA 40,2,39,3,32,4,30,5,29,6,28,7,27,8,26,9
  4. 101 DATA 24,10,23,11,21,12,19,13,17,14,15,15
  5. 305 READ M,N
  6. 307 Z=0:K=101:N=N+1:IF N>K THEN PRINT"100th DEGREE LIMIT":STOP
  7. 310 DIM Q(M),P(M),X(M),Y(M),C(M),A(15),B(15),S(15),G(15),U(15)
  8. 320 T7=Z:T8=Z:W7=Z:IF M<N THEN 710
  9. 330 FOR I=1 TO M:READ X(I),Y(I):W7=W7+X(I):T7=T7+Y(I):T8=T8+Y(I)^2:NEXT I
  10. 340 T9=(M*T8-T7^2)/(M*M-M)
  11. 350 PRINT"NUMBER OF POINTS=";M:PRINT"MEAN X=";W7/M
  12. 360 PRINT"MEAN Y=";T7/M
  13. 365 PRINT"STANDARD DEVIATION IN Y=";SQR(T9)
  14. 385 FOR I=1 TO M:P(I)=Z:Q(I)=1:NEXT I
  15. 390 FOR I=1 TO 15:A(I)=Z:B(I)=Z:S(I)=Z:U(I)=Z:NEXT I
  16. 395 E1=Z:F1=Z:W1=M:N4=K:K1=2:I=1:K1=2
  17. 400 IF N<>0 THEN K1=N4
  18. 405 W=Z
  19. 410 FOR L=1 TO M:W=W+Y(L)*Q(L):NEXT L
  20. 415 S(I)=W/W1
  21. 420 IF I-N4>=0 THEN 460
  22. 425 IF I-M>=0 THEN 460
  23. 430 E1=Z
  24. 435 FOR L=1 TO M:E1=E1+X(L)*Q(L)*Q(L):NEXT L
  25. 440 E1=E1/W1:A(I+1)=E1:W=Z
  26. 445 FOR L=1 TO M:V=(X(L)-E1)*Q(L)-F1*P(L)
  27. 450 P(L)=Q(L):Q(L)=V:W=W+V*V:NEXT L
  28. 455 F1=W/W1:B(I+2)=F1:W1=W:I=I+1:GOTO 405
  29. 460 FOR L=0 TO 12:G(L)=Z:NEXT L
  30. 465 G(1)=1
  31. 470 FOR J=1 TO N:S1=X
  32. 475 FOR L=1 TO N:IF L<>1 THEN G(L)=G(L)-A(L)*G(L-1)-B(L)*G(L-2)
  33. 480 S1=S1+S(L)*G(L):NEXT L
  34. 485 U(J)=S1:L=N
  35. 490 FOR I2=2 TO N:G(L)=G(L-1):L=L-1:NEXT I2
  36. 495 G(1)=Z:NEXT J
  37. 500 T=Z
  38. 505 FOR L=1 TO M:C(L)=Z:J=N
  39. 510 FOR I2=1 TO N:C(L)=C(L)*X(L)+U(J):J=J-1:NEXT I2
  40. 515 T3=Y(L)-C(L):T=T+T3^2:NEXT L
  41. 520 IF M=N THEN T5=0:GOTO 530
  42. 525 T5=T/(M-N)
  43. 530 Q7=1-T/(T9*(M-1))
  44. 535 PRINT"POLYNOMIAL DEGREE=";N-1:PRINT"INDEX OF DETERMINATION,I=";Q7:GOTO 613
  45. 550 IF R=3 THEN 625
  46. 560 PRINT:PRINT"POLYNOMIAL COEFFICIENTS:":FOR J=1 TO N:I2=J-1
  47. 565 PRINT U(J);"*X^";I2:NEXT J:PRINT
  48. 575 IF R=1 THEN 613
  49. 585 FOR L=1 TO M:Q8=Y(L)-C(L):PRINT"DATA POINT No.=";L:PRINT"Xactual=";X(L);:PRINT",   Yactual=";Y(L)
  50. 587 PRINT"Ycalculated=";C(L);:PRINT",   DIFFERENCE=";Q8
  51. 590 IF C(L)<>0 THEN PRINT"%DIFF=";100*Q8/C(L):GOTO 600
  52. 595 C(L)=0:PRINT"% DIFF=INFINITE"
  53. 600 INPUT "PRESS RETURN";C$:PRINT:NEXT L
  54. 605 PRINT"Y STANDARD ERROR=";SQR(T5)
  55. 613 INPUT "MENU: 1=PRINT POLY COEFFS: 2=SUMMARY: 3=NEXT DEGREE:";R:GOTO 550
  56. 625 N=N+1
  57. 630 IF M>=N THEN 460
  58. 710 PRINT"TOO FEW POINTS FOR DEGREE";N-1:INPUT"PRESS RETURN TO END";C$:END
  59.          MACINTOSH LISTING
  60.